<?php

/**
 * 消息模版发送基础类
 *
 * @author hjc19850430@gmail.com
 */
class BaseMsgtpl
{

    protected $wxObj;  //微信API对象
    protected $wechatId; //微信公众号id
    protected $wechatInfo; //微信基础信息
    public $wxTplSign;  //微信模版id

    public function __construct($wechatId, $wxTplSign = null)
    {
        if (empty($this->wxObj)) {    //微信对象
            $this->wxObj = $this->getWechatObj($wechatId);
        }

        if ($wxTplSign) { //如果在一个Action下只有一个模版标签,直接设置
            $this->setWxTplSign($wxTplSign); //微信模版标识设置
        }

        $this->wechatId = $wechatId; //微信公众号id

        $this->wechatInfo = $this->getWechatInfo(); //获得微信基础信息
    }

    /**
     * 获得微信对象
     * @param int $wechatId 公众号对应的主键值
     */
    protected function getWechatObj($wechatId)
    {
        vendor('Wechat.WechatApi');
        $weixin = new WechatApi($wechatId);

        return $weixin;
    }

    /**
     * 设置微信模版id
     * 一个微信公众号如果一个Action下的方法使用了不同的微信标识，
     * 就要在不同的模块里面去设置
     * 
     * @param string $wxTplSign
     */
    public function setWxTplSign($wxTplSign)
    {
        $this->wxTplSign = $wxTplSign;
    }

    /**
     * 获得微信模版id
     * @return string
     */
    public function getWxTplSign()
    {
        return $this->wxTplSign;
    }

    /**
     * 获得微信基础信息
     */
    private function getWechatInfo()
    {
        $wechatInfo = D('Wechat/Wechat')->getByPk($this->wechatId);

        return !empty($wechatInfo) ? $wechatInfo : null;
    }

    /**
     * 析构函数
     */
    public function __destruct()
    {
        
    }

}
